home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / CC_C / 1116.ZIP / TOOLKIT.ARC / GETINT.H < prev    next >
Text File  |  1979-12-31  |  8KB  |  208 lines

  1.  
  2. /* GETINT.H  written by Wayne Perason
  3.              This Small-c:PC header file makes input of numeric values
  4.              possible via the keyboard.
  5.  
  6.    Valid function calls:
  7.                          x = getint("%d",x);  decimal number input
  8.                          x = getint("%h",x);  hexadecimal number input
  9.                          x = getint("%o",x);  octal number input
  10.                          x = getint("%b",x);  binary number input
  11.  
  12.                          x = getval(row,column,x); get ASCII value at
  13.                                                    a cursor location
  14.                                                    specified by row,col.
  15. */
  16.  
  17. getint(gi_str,n_gi)
  18.                       char gi_str[];  int *n_gi;
  19. {
  20.    int gi_s;
  21.    char gi_str0, gi_sn;
  22.    gi_str0 = gi_str[0]; gi_sn = gi_str[1];
  23.    if((gi_str0 =='%')&(gi_sn =='d'))
  24.       {
  25.          int gi_ld, d_p100, d_p10, d_p1;
  26.          char d_str0, d_str1, d_str2;
  27.          d_str0 = getchar(d_str0);
  28.          if(d_str0 != 13) gi_ld = 1; else gi_s = gi_ld = 0;
  29.          if(d_str0 != 13)
  30.             {
  31.               d_str1 = getchar(d_str1);
  32.               if(d_str1 != 13)
  33.                  {
  34.                    gi_ld = 2;
  35.                    d_str2 = getchar(d_str2);
  36.                    if(d_str2 != 13) gi_ld = 3;
  37.                  }
  38.             }
  39.          if(gi_ld == 3)
  40.             {
  41.               putchar(13);
  42.               if(((d_str0 < 48)|(d_str0 > 57))&(d_str0 != 13))
  43.                                                       { n_gi = 0; return; }
  44.               if(((d_str1 < 48)|(d_str1 > 57))&(d_str1 != 13))
  45.                                                       { n_gi = 0; return; }
  46.               if(((d_str2 < 48)|(d_str2 > 57))&(d_str2 != 13))
  47.                                                       { n_gi = 0; return; }
  48.               d_p100 = d_str0 - 48; d_p100 = d_p100 * 100;
  49.               d_p10 = d_str1 - 48; d_p10 = d_p10 * 10;
  50.               d_p1 = d_str2 - 48;
  51.               gi_s = d_p100 + d_p10 + d_p1;
  52.             }
  53.          if(gi_ld == 2)
  54.             {
  55.               if(((d_str0 < 48)|(d_str0 > 57))&(d_str0 != 13))
  56.                                                       { n_gi = 0; return; }
  57.               if(((d_str1 < 48)|(d_str1 > 57))&(d_str1 != 13))
  58.                                                       { n_gi = 0; return; }
  59.               d_p10 = d_str0 - 48; d_p10 = d_p10 * 10;
  60.               d_p1 = d_str1 - 48; gi_s = d_p10 + d_p1;
  61.                }
  62.          if(gi_ld == 1)
  63.             {
  64.               if(((d_str0 < 48)|(d_str0 > 57))&(d_str0 != 13))
  65.                                                       { n_gi = 0; return; }
  66.               gi_s = d_str0 - 48;
  67.             }
  68.           }
  69.  
  70.    if((gi_str0 =='%')&(gi_sn =='o'))
  71.       {
  72.          int gi_lo, o_p100, o_p10, o_p1;
  73.          char o_str0, o_str1, o_str2;
  74.          o_str0 = getchar(o_str0);
  75.          if(o_str0 != 13) gi_lo = 1; else gi_lo = gi_s = 0;
  76.          if(o_str0 != 13)
  77.             {
  78.               o_str1 = getchar(o_str1);
  79.               if(o_str1 != 13)
  80.                  {
  81.                    gi_lo = 2;
  82.                    o_str2 = getchar(o_str2);
  83.                    if(o_str2 != 13) gi_lo = 3;
  84.                  }
  85.             }
  86.          if(gi_lo == 3)
  87.             {
  88.               putchar(13);
  89.               if(((o_str0 < 48)|(o_str0 > 55))&(o_str0 != 13))
  90.                                                       { n_gi = 0; return; }
  91.               if(((o_str1 < 48)|(o_str1 > 55))&(o_str1 != 13))
  92.                                                       { n_gi = 0; return; }
  93.               if(((o_str2 < 48)|(o_str2 > 55))&(o_str2 != 13))
  94.                                                       { n_gi = 0; return; }
  95.               o_p100 = o_str0 - 48; o_p100 = o_p100 * 64;
  96.               o_p10 = o_str1 - 48; o_p10 = o_p10 * 8;
  97.               o_p1 = o_str2 - 48;
  98.               gi_s = o_p100 + o_p10 + o_p1;
  99.             }
  100.          if(gi_lo == 2)
  101.             {
  102.               if(((o_str0 < 48)|(o_str0 > 55))&(o_str0 != 13))
  103.                                                       { n_gi = 0; return; }
  104.               if(((o_str1 < 48)|(o_str1 > 55))&(o_str1 != 13))
  105.                                                       { n_gi = 0; return; }
  106.               o_p10 = o_str0 - 48; o_p10 = o_p10 * 8;
  107.               o_p1 = o_str1 - 48; gi_s = o_p10 + o_p1;
  108.             }
  109.          if(gi_lo == 1)
  110.             {
  111.               if(((o_str0 < 48)|(o_str0 > 55))&(o_str0 != 13))
  112.                                                       { n_gi = 0; return; }
  113.               gi_s = o_str0 - 48;
  114.             }
  115.       }
  116.  
  117. if((gi_str0 =='%')&(gi_sn =='h'))
  118.       {
  119.          int gi_lh, h_p16, h_p1;
  120.          char h_str0, h_str1;
  121.          h_str0 = getchar(h_str0);
  122.          if(h_str0 != 13) gi_lh = 1; else gi_s = gi_lh = 0;
  123.          if(h_str0 != 13)
  124.             {
  125.               h_str1 = getchar(h_str1);
  126.               if(h_str1 != 13) gi_lh = 2;
  127.             }
  128.          if(gi_lh == 2)
  129.             {
  130.               putchar(13); h_p16 = h_str0;
  131.               if(h_str0 > 96) h_str0 = h_str0 - 32; /* toupper */
  132.               if(h_str1 > 96) h_str1 = h_str1 - 32; /* toupper */
  133.               if(((h_str0 < 48)|(h_str0 > 70))&(h_str0 != 13))
  134.                                                       { n_gi = 0; return; }
  135.               if(((h_str1 < 48)|(h_str1 > 70))&(h_str1 != 13))
  136.                                                       { n_gi = 0; return; }
  137.               if(h_p16 > 57) h_p16 = h_p16 - 55; else h_p16 = h_p16 - 48;
  138.               h_p1 = h_str1;
  139.               if(h_p1 > 57) h_p1 = h_p1 - 55; else h_p1 = h_p1 - 48;
  140.               gi_s = h_p16 * 16 + h_p1;
  141.             }
  142.          if(gi_lh == 1)
  143.             {
  144.               if(h_str0 > 96) h_str0 = h_str0 - 32; /* toupper */
  145.               if(((h_str0 < 48)|(h_str0 > 70))&(h_str0 != 13))
  146.                                                       { n_gi = 0; return; }
  147.               h_p1 = h_str0;
  148.               if(h_p1 > 57) gi_s = h_p1 - 55; else gi_s = h_p1 - 48;
  149.             }
  150.       }
  151.  
  152. if((gi_str0 =='%')&(gi_sn =='b'))
  153.    {
  154.      int _b1, _b2, _b3, _b4, _b5, _b6, _b7, _b8, gi_lb, _go;
  155.      _b1 = getchar(_b1);
  156.      if(_b1 == 13) { n_gi = 0; return; }
  157.      if(_b1 != 13)
  158.        {
  159.         _b2 = getchar(_b2);
  160.         _b3 = getchar(_b3);
  161.         _b4 = getchar(_b4);
  162.         _b5 = getchar(_b5);
  163.         _b6 = getchar(_b6);
  164.         _b7 = getchar(_b7);
  165.         _b8 = getchar(_b8);
  166.        }
  167.      putchar(13);
  168.      if(((_b1 < 48)|(_b1 > 49))&(_b1 != 13))
  169.                                              { n_gi = 0; return; }
  170.      if(((_b2 < 48)|(_b2 > 49))&(_b2 != 13))
  171.                                              { n_gi = 0; return; }
  172.      if(((_b3 < 48)|(_b3 > 49))&(_b3 != 13))
  173.                                              { n_gi = 0; return; }
  174.      if(((_b4 < 48)|(_b4 > 49))&(_b4 != 13))
  175.                                              { n_gi = 0; return; }
  176.      if(((_b5 < 48)|(_b5 > 49))&(_b5 != 13))
  177.                                              { n_gi = 0; return; }
  178.      if(((_b6 < 48)|(_b6 > 49))&(_b6 != 13))
  179.                                              { n_gi = 0; return; }
  180.      if(((_b7 < 48)|(_b7 > 49))&(_b7 != 13))
  181.                                              { n_gi = 0; return; }
  182.      if(((_b8 < 48)|(_b8 > 49))&(_b8 != 13))
  183.                                              { n_gi = 0; return; }
  184.      _b1 = (_b1 - 48) * 128;
  185.      _b2 = (_b2 - 48) * 64;
  186.      _b3 = (_b3 - 48) * 32;
  187.      _b4 = (_b4 - 48) * 16;
  188.      _b5 = (_b5 - 48) * 8;
  189.      _b6 = (_b6 - 48) * 4;
  190.      _b7 = (_b7 - 48) * 2;
  191.      _b8 = _b8 - 48;
  192.      gi_s = _b1 +_b2 +_b3 +_b4 +_b5 +_b6 +_b7 +_b8;
  193.    }
  194.   n_gi = gi_s;
  195. }
  196.  
  197. getval(_gvrow,gv_col,_gvx)
  198.                             int _gv_row, _gv_col, *_gvx;
  199.                           {
  200.                             int _ah_, _gvx10;
  201.                             int10(2,0,0,0,0,0,_gv_row,_gv_col);
  202.                             _ah_ = 8;
  203.                             int10(_ah_,_gvx10,0,0,0,0,0,0);
  204.                             _gvx = _gvx10;
  205.                           }
  206.  
  207.  
  208.